--- title: "L1-018 大笨钟" created: 2025-11-28 tags: - 算法 --- # L1-018 大笨钟 ## 题目 [L1-018 大笨钟](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805119944605696&page=0) ![[image-1cc7240e.png]] ## 思路分析 ```cpp printf 用法:printf("format specifier", value1, value2, ...); 目的:根据指定的格式输出数据。printf是C语言中的标准输出函数,但在C++中仍然可用。 场景:当需要精确控制输出格式,比如指定浮点数的精度,或者输出的宽度时。 优点: - 高度格式化的输出。 - 在某些情况下,性能优于`cout`。 缺点: - 不是类型安全的,错误的格式说明符可能导致运行时错误 常用格式控制 printf非常强大,支持多种格式控制符,可以精确地控制输出格式。 - `%d`:输出十进制整数。 - `%u`:输出无符号十进制整数。 - `%f`:输出浮点数,默认情况下保留小数点后六位。 - `%.2f`:输出浮点数,小数点后保留两位。 - `%s`:输出字符串。 - `%c`:输出单个字符。 - `%x`或`%X`:输出十六进制数,`x`产生小写字母,`X`产生大写字母。 - `%p`:输出指针地址。 - `%%`:输出`%`字符。 高级用法 - 指定宽度:%5d表示输出的整数至少占5个字符宽度,如果数字位数不够,前面补空格。 - 左对齐:%-5d表示输出的整数左对齐,至少占5个字符宽度。 - 指定浮点数精度:%.3f表示输出的浮点数保留三位小数。 - 动态宽度和精度:%*.*f允许动态指定宽度和精度,这两个值由额外的参数提供。 printf("%5d\n", 123); // " 123" printf("%-5d\n", 123); // "123 " printf("%.3f\n", 3.1415926); // "3.142" ``` ## 代码实现 ```cpp #include using namespace std; #define endl '\n' int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int hh,mm; scanf("%d:%d",&hh,&mm); if(hh>=0 && hh<=12) { printf("Only %02d:%02d. Too early to Dang.",hh,mm); return 0; } if(mm>0) hh++; for(int i=0;i